home *** CD-ROM | disk | FTP | other *** search
-
-
-
-
- #include "WINGsP.h"
-
-
-
- typedef struct W_MenuItem {
- char *title;
-
- WMPixmap *image;
-
- char *shortcutKey;
- int shortcutModifierMask;
-
- WMAction *action;
- void *data;
-
- struct W_Menu *submenu;
-
- void *object;
-
- WMPixmap *onStateImage;
- WMPixmap *offStateImage;
- WMPixmap *mixedStateImage;
-
- struct {
- unsigned enabled:1;
- unsigned state:2;
- } flags;
- } MenuItem;
-
-
-
-
-
- WMMenuItem*
- WMGetSeparatorMenuItem(void)
- {
- return NULL;
- }
-
-
- Bool
- WMMenuItemIsSeparator(WMMenuItem *item)
- {
- return False;
- }
-
-
- WMMenuItem*
- WMCreateMenuItem(void)
- {
- WMMenuItem *item;
-
- item = wmalloc(sizeof(WMMenuItem));
- memset(item, 0, sizeof(WMMenuItem));
-
- item->flags.enabled = 1;
-
- return item;
- }
-
-
- void
- WMDestroyMenuItem(WMMenuItem *item)
- {
- if (item->title)
- free(item->title);
-
- if (item->image)
- WMReleasePixmap(item->image);
-
- if (item->shortcutKey)
- free(item->shortcutKey);
-
- if (item->onStateImage)
- WMReleasePixmap(item->onStateImage);
-
- if (item->offStateImage)
- WMReleasePixmap(item->offStateImage);
-
- if (item->mixedStateImage)
- WMReleasePixmap(item->mixedStateImage);
- }
-
-
- Bool
- WMGetMenuItemEnabled(WMMenuItem *item)
- {
- return item->flags.enabled;
- }
-
-
- void
- WMSetMenuItemEnabled(WMMenuItem *item, Bool flag)
- {
- item->flags.enabled = flag;
- }
-
-
- char*
- WMGetMenuItemShortcut(WMMenuItem *item)
- {
- return item->shortcutKey;
- }
-
-
- unsigned
- WMGetMenuItemShortcutModifierMask(WMMenuItem *item)
- {
- return item->shortcutModifierMask;
- }
-
-
-
- void
- WMSetMenuItemShortcut(WMMenuItem *item, char *shortcut)
- {
- if (item->shortcutKey)
- wfree(item->shortcutKey);
-
- item->shortcutKey = wstrdup(shortcut);
- }
-
-
- void
- WMSetMenuItemShortcutModifierMask(WMMenuItem *item, unsigned mask)
- {
- item->shortcutModifierMask = mask;
- }
-
-
- void*
- WMGetMenuItemRepresentedObject(WMMenuItem *item)
- {
- return item->object;
- }
-
-
- void
- WMSetMenuItemRepresentedObject(WMMenuItem *item, void *object)
- {
- item->object = object;
- }
-
-
- void
- WMSetMenuItemAction(WMMenuItem *item, WMAction *action, void *data)
- {
- item->action = action;
- item->data = data;
- }
-
-
- WMAction*
- WMGetMenuItemAction(WMMenuItem *item)
- {
- return item->action;
- }
-
-
- void*
- WMGetMenuItemData(WMMenuItem *item)
- {
- return item->data;
- }
-
-
- void
- WMSetMenuItemTitle(WMMenuItem *item, char *title)
- {
- if (item->title)
- wfree(item->title);
-
- if (title)
- item->title = wstrdup(title);
- else
- item->title = NULL;
- }
-
-
- char*
- WMGetMenuItemTitle(WMMenuItem *item)
- {
- return item->title;
- }
-
-
- void
- WMSetMenuItemState(WMMenuItem *item, int state)
- {
- item->flags.state = state;
- }
-
-
- int
- WMGetMenuItemState(WMMenuItem *item)
- {
- return item->flags.state;
- }
-
-
- void
- WMSetMenuItemPixmap(WMMenuItem *item, WMPixmap *pixmap)
- {
- if (item->image)
- WMReleasePixmap(item->image);
-
- item->image = WMRetainPixmap(pixmap);
- }
-
-
- WMPixmap*
- WMGetMenuItemPixmap(WMMenuItem *item)
- {
- return item->image;
- }
-
-
- void
- WMSetMenuItemOnStatePixmap(WMMenuItem *item, WMPixmap *pixmap)
- {
- if (item->onStateImage)
- WMReleasePixmap(item->onStateImage);
-
- item->onStateImage = WMRetainPixmap(pixmap);
- }
-
-
- WMPixmap*
- WMGetMenuItemOnStatePixmap(WMMenuItem *item)
- {
- return item->onStateImage;
- }
-
-
- void
- WMSetMenuItemOffStatePixmap(WMMenuItem *item, WMPixmap *pixmap)
- {
- if (item->offStateImage)
- WMReleasePixmap(item->offStateImage);
-
- item->offStateImage = WMRetainPixmap(pixmap);
- }
-
-
- WMPixmap*
- WMGetMenuItemOffStatePixmap(WMMenuItem *item)
- {
- return item->offStateImage;
- }
-
-
-
- void
- WMSetMenuItemMixedStatePixmap(WMMenuItem *item, WMPixmap *pixmap)
- {
- if (item->mixedStateImage)
- WMReleasePixmap(item->mixedStateImage);
-
- item->mixedStateImage = WMRetainPixmap(pixmap);
- }
-
-
- WMPixmap*
- WMGetMenuItemMixedStatePixmap(WMMenuItem *item)
- {
- return item->mixedStateImage;
- }
-
-
- /*
- void
- WMSetMenuItemSubmenu(WMMenuItem *item, WMMenu *submenu)
- {
- item->submenu = submenu;
- }
-
-
- WMMenu*
- WMGetMenuItemSubmenu(WMMenuItem *item)
- {
- return item->submenu;
- }
-
-
-
- Bool
- WMGetMenuItemHasSubmenu(WMMenuItem *item)
- {
- return item->submenu != NULL;
- }
-
- */
-